Skip to content

Add Traefik reverse-proxy module - #549

Open
RonaldHensbergen wants to merge 7 commits into
mainfrom
feat/traefik-module
Open

Add Traefik reverse-proxy module#549
RonaldHensbergen wants to merge 7 commits into
mainfrom
feat/traefik-module

Conversation

@RonaldHensbergen

Copy link
Copy Markdown
Owner

Summary

Adds a new modules/integration/traefik/module.yaml defining a Traefik
reverse-proxy module:

  • Container runtime exposing http/https/dashboard ports.
  • Configurable logging, access logs, API/dashboard, entry points, TLS
    (min/max version, SNI strictness, preferred server cipher suites), Docker
    provider, and file provider settings, all with sane secure defaults
    (TLS 1.2+ enforced, dashboard bound to 127.0.0.1, insecure API off).
  • Provides a reverse-proxy contract over HTTPS on port 443.
  • Hardened Compose implementation: non-root user, read_only root FS,
    cap_drop: [ALL], no-new-privileges, pids_limit, and a
    traefik healthcheck --ping healthcheck.

Refs #205 (TLS and certificate-management contracts) — this module is the
ingress/reverse-proxy piece that will carry TLS termination and
certificate-reference wiring for that work.

Testing

  • cds validate (standalone single-module profile) — 0 diagnostics.
  • yamllint modules/integration/traefik/module.yaml — clean.

@SemTiOne SemTiOne left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Solid work! I have some suggestions below that you may want to consider.

Comment thread modules/integration/traefik/module.yaml Outdated
Comment thread modules/integration/traefik/module.yaml Outdated
Comment thread modules/integration/traefik/module.yaml Outdated
Comment thread modules/integration/traefik/module.yaml Outdated
Comment thread modules/integration/traefik/module.yaml
- default

volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

docker.sock mount gives the container host-root via the Docker API; :ro does not restrict it. This cancels the cap_drop/no-new-privileges/read_only hardening. Use a socket proxy or drop the Docker provider by default.

compose:
services:
traefik:
image: traefik:v3.0

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pin traefik:v3.0 to a digest (keydb does).

RonaldHensbergen and others added 6 commits August 29, 2026 07:15
Co-authored-by: Dane Parin <emphyst80@gmail.com>
Co-authored-by: Dane Parin <emphyst80@gmail.com>
Co-authored-by: Dane Parin <emphyst80@gmail.com>
Co-authored-by: Dane Parin <emphyst80@gmail.com>
Co-authored-by: Dane Parin <emphyst80@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants